package com.reactim.message.config.management;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;

/**
 * 配置备份信息
 * 
 * <p>用于展示配置备份的基本信息，不包含完整的配置数据，
 * 适用于备份列表展示等场景。</p>
 * 
 * @author ReactIM Team
 * @version 1.0.0
 * @since 1.0.0
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ConfigurationBackupInfo {
    
    /**
     * 备份名称
     */
    private String name;
    
    /**
     * 备份创建时间
     */
    private LocalDateTime timestamp;
    
    /**
     * 备份大小（字节）
     */
    private long size;
    
    /**
     * 获取格式化的备份大小
     * 
     * @return 格式化的备份大小字符串
     */
    public String getFormattedSize() {
        if (size < 1024) {
            return size + " B";
        } else if (size < 1024 * 1024) {
            return String.format("%.2f KB", size / 1024.0);
        } else {
            return String.format("%.2f MB", size / (1024.0 * 1024.0));
        }
    }
}